const electron = require('electron');
// 控制应用生命周期的模块。
const {app, Menu, Tray} = electron;
// 创建原生浏览器窗口的模块。
const {BrowserWindow} = electron;

const path = require('path')
const { initipcMain } = require(path.join(__dirname, './src/assets/js/electronReadFun'))

let mainWindow;
function createWindow() {
  // 创建浏览器窗口。
  mainWindow = new BrowserWindow({
    width: 390, 
    height: 600,
    resizable:false,  // 禁止调整窗口大小
    webPreferences: {
      nodeIntegration: true, 
      contextIsolation: false,
      enableRemoteModule: true,  // 打开remote
      preload: __dirname + '/preload.js',
    }
  });

  mainWindow.on('close', (e)=>{
    console.log(isquit)
    if (!isquit) {
      e.preventDefault();
      mainWindow.hide();
    }
  })

  // 加载应用的 index.html。
  mainWindow.loadURL(`file://${__dirname}/dist/index.html`);
  // mainWindow.loadURL(`http://localhost:9001/`);
  // 启用开发工具
  // mainWindow.webContents.openDevTools();
}

// Electron 会在初始化后并准备
app.on('ready', ()=>{
  const remote = require('@electron/remote/main')
  createWindow();
  remote.initialize()
  remote.enable(mainWindow.webContents);
  // 创建主进程和渲染进程之间的数据通信
  initipcMain(__dirname);
});

// 创建系统托盘
let tray = null
app.whenReady().then(() => {
  tray = new Tray(path.join(__dirname, './src/assets/img/icon.png'))
  const contextMenu = Menu.buildFromTemplate([
    { label: '打开界面', type: 'normal', click:()=>{
      // 显示主程序
      mainWindow.show();
    }},
    { label: '退出', type: 'normal', click:()=>{
      app.quit();
      tray.destroy()
    }},
  ])
  tray.setToolTip('空城机的番茄钟')
  tray.setContextMenu(contextMenu)
  // 双击托盘
  tray.on('double-click', ()=>{
    // 显示主程序
    mainWindow.show();
  })
})

let isquit = false;


app.on('before-quit', () => {
  isquit = true;
});


// 当全部窗口关闭时退出。
app.on('window-all-closed', () => {
  // 否则绝大部分应用及其菜单栏会保持激活。
  // if (process.platform !== 'darwin') {
  //   app.quit();
  // }
});

app.on('activate', () => {
  // 绝大部分应用会重新创建一个窗口。
  if (mainWindow === null) {
    // createWindow();
  }
});